[tool.black]
line-length = 100

[tool.pyright]
pythonPlatform = "Linux"
pythonVersion = "3.8"
reportUnnecessaryCast = true
reportUnnecessaryTypeIgnoreComment = true
stubPath = "./typings"
typeCheckingMode = "strict"
verboseOutput = true

[tool.ruff]
line-length = 100

# -- changes made here should also be made in `.pre-commit-config.yaml` and `Makefile` --
[tool.ruff.lint]
select = [
    "C4",       # -- flake8-comprehensions --
    "COM",      # -- flake8-commas --
    "E",        # -- pycodestyle errors --
    "F",        # -- pyflakes --
    "I",        # -- isort (imports) --
    "PLR0402",  # -- Name compared with itself like `foo == foo` --
    "PT",       # -- flake8-pytest-style --
    "SIM",      # -- flake8-simplify --
    "UP015",    # -- redundant `open()` mode parameter (like "r" is default) --
    "UP018",    # -- Unnecessary {literal_type} call like `str("abc")`. (rewrite as a literal) --
    "UP032",    # -- Use f-string instead of `.format()` call --
    "UP034",    # -- Avoid extraneous parentheses --
]
ignore = [
    "COM812",   # -- over aggressively insists on trailing commas where not desireable --
    "PT011",    # -- pytest.raises({exc}) too broad, use match param or more specific exception --
    "PT012",    # -- pytest.raises() block should contain a single simple statement --
    "SIM117",   # -- merge `with` statements for context managers that have same scope --
]
